package com.hscm.boss.mvc.settings;

import com.hscm.boss.mvc.interceptor.TokenInterceptor;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration //拦截器要配置的东西
public class WebMvcSettings implements WebMvcConfigurer {

    @Resource
    private TokenInterceptor tokenInterceptor;


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //添加拦截器
        registry.addInterceptor(tokenInterceptor)
                .addPathPatterns("/**")//指定拦截的地址  /** 表示所有的地址
                .excludePathPatterns("/operator/login");//指定不拦截的地址  排除不拦截的地址
    }

    //全局跨域处理
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        System.out.println("===========addCorsMappings===========");
        registry.addMapping("/**")
                .allowedOriginPatterns("*") //允许的请求来源，，允许的
                //OPTIONS 预检请求
                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
                .allowCredentials(true) //服务器是否支持cookie
                .maxAge(3600) //OPTIONS 请求的有效期  秒为单位  这样请求效率高
                .allowedHeaders("*"); //跨域允许包含的请求头名称
    }


}
